/**
 */
package org.mro.grib.model.files.secondEdition.products.impl;

import java.nio.ByteBuffer;

import org.eclipse.emf.common.notify.Notification;

import org.eclipse.emf.ecore.EClass;

import org.eclipse.emf.ecore.impl.ENotificationImpl;

import org.mro.grib.model.files.secondEdition.products.ProductDefinitionTemplate43;
import org.mro.grib.model.files.secondEdition.products.ProductsPackage;

/**
 * <!-- begin-user-doc -->
 * An implementation of the model object '<em><b>Product Definition Template43</b></em>'.
 * <!-- end-user-doc -->
 * <p>
 * The following features are implemented:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getClusterIdentifier <em>Cluster Identifier</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getNumberOfClusterHighResolution <em>Number Of Cluster High Resolution</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getNumberOfClusterLowResolution <em>Number Of Cluster Low Resolution</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getTotalNumberOfClusters <em>Total Number Of Clusters</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getClusteringMethod <em>Clustering Method</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getNorthernLatitudeOfClusterDomain <em>Northern Latitude Of Cluster Domain</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getSouthernLatitudeOfClusterDomain <em>Southern Latitude Of Cluster Domain</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getEasternLatitudeOfClusterDomain <em>Eastern Latitude Of Cluster Domain</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getWesternLatitudeOfClusterDomain <em>Western Latitude Of Cluster Domain</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getNumberOfForecastsInTheCluster <em>Number Of Forecasts In The Cluster</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getScaleFactorOfStandardDeviationInTheCluster <em>Scale Factor Of Standard Deviation In The Cluster</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getScaledValueOfStandardDeviationInTheCluster <em>Scaled Value Of Standard Deviation In The Cluster</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getScaleFactorOfDistanceOfTheClusterFromEnsembleMean <em>Scale Factor Of Distance Of The Cluster From Ensemble Mean</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getScaledValueOfDistanceOfTheClusterFromEnsembleMean <em>Scaled Value Of Distance Of The Cluster From Ensemble Mean</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate43Impl#getEnsembleForecastNumbersOffset <em>Ensemble Forecast Numbers Offset</em>}</li>
 * </ul>
 * </p>
 *
 * @generated
 */
public class ProductDefinitionTemplate43Impl extends ProductDefinitionTemplate42Impl implements ProductDefinitionTemplate43 {
	/**
	 * The default value of the '{@link #getClusterIdentifier() <em>Cluster Identifier</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getClusterIdentifier()
	 * @generated
	 * @ordered
	 */
	protected static final byte CLUSTER_IDENTIFIER_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getClusterIdentifier() <em>Cluster Identifier</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getClusterIdentifier()
	 * @generated
	 * @ordered
	 */
	protected byte clusterIdentifier = CLUSTER_IDENTIFIER_EDEFAULT;

	/**
	 * The default value of the '{@link #getNumberOfClusterHighResolution() <em>Number Of Cluster High Resolution</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfClusterHighResolution()
	 * @generated
	 * @ordered
	 */
	protected static final byte NUMBER_OF_CLUSTER_HIGH_RESOLUTION_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getNumberOfClusterHighResolution() <em>Number Of Cluster High Resolution</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfClusterHighResolution()
	 * @generated
	 * @ordered
	 */
	protected byte numberOfClusterHighResolution = NUMBER_OF_CLUSTER_HIGH_RESOLUTION_EDEFAULT;

	/**
	 * The default value of the '{@link #getNumberOfClusterLowResolution() <em>Number Of Cluster Low Resolution</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfClusterLowResolution()
	 * @generated
	 * @ordered
	 */
	protected static final byte NUMBER_OF_CLUSTER_LOW_RESOLUTION_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getNumberOfClusterLowResolution() <em>Number Of Cluster Low Resolution</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfClusterLowResolution()
	 * @generated
	 * @ordered
	 */
	protected byte numberOfClusterLowResolution = NUMBER_OF_CLUSTER_LOW_RESOLUTION_EDEFAULT;

	/**
	 * The default value of the '{@link #getTotalNumberOfClusters() <em>Total Number Of Clusters</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTotalNumberOfClusters()
	 * @generated
	 * @ordered
	 */
	protected static final byte TOTAL_NUMBER_OF_CLUSTERS_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getTotalNumberOfClusters() <em>Total Number Of Clusters</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getTotalNumberOfClusters()
	 * @generated
	 * @ordered
	 */
	protected byte totalNumberOfClusters = TOTAL_NUMBER_OF_CLUSTERS_EDEFAULT;

	/**
	 * The default value of the '{@link #getClusteringMethod() <em>Clustering Method</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getClusteringMethod()
	 * @generated
	 * @ordered
	 */
	protected static final byte CLUSTERING_METHOD_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getClusteringMethod() <em>Clustering Method</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getClusteringMethod()
	 * @generated
	 * @ordered
	 */
	protected byte clusteringMethod = CLUSTERING_METHOD_EDEFAULT;

	/**
	 * The default value of the '{@link #getNorthernLatitudeOfClusterDomain() <em>Northern Latitude Of Cluster Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNorthernLatitudeOfClusterDomain()
	 * @generated
	 * @ordered
	 */
	protected static final int NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getNorthernLatitudeOfClusterDomain() <em>Northern Latitude Of Cluster Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNorthernLatitudeOfClusterDomain()
	 * @generated
	 * @ordered
	 */
	protected int northernLatitudeOfClusterDomain = NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT;

	/**
	 * The default value of the '{@link #getSouthernLatitudeOfClusterDomain() <em>Southern Latitude Of Cluster Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSouthernLatitudeOfClusterDomain()
	 * @generated
	 * @ordered
	 */
	protected static final int SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getSouthernLatitudeOfClusterDomain() <em>Southern Latitude Of Cluster Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getSouthernLatitudeOfClusterDomain()
	 * @generated
	 * @ordered
	 */
	protected int southernLatitudeOfClusterDomain = SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT;

	/**
	 * The default value of the '{@link #getEasternLatitudeOfClusterDomain() <em>Eastern Latitude Of Cluster Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getEasternLatitudeOfClusterDomain()
	 * @generated
	 * @ordered
	 */
	protected static final int EASTERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getEasternLatitudeOfClusterDomain() <em>Eastern Latitude Of Cluster Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getEasternLatitudeOfClusterDomain()
	 * @generated
	 * @ordered
	 */
	protected int easternLatitudeOfClusterDomain = EASTERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT;

	/**
	 * The default value of the '{@link #getWesternLatitudeOfClusterDomain() <em>Western Latitude Of Cluster Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getWesternLatitudeOfClusterDomain()
	 * @generated
	 * @ordered
	 */
	protected static final int WESTERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getWesternLatitudeOfClusterDomain() <em>Western Latitude Of Cluster Domain</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getWesternLatitudeOfClusterDomain()
	 * @generated
	 * @ordered
	 */
	protected int westernLatitudeOfClusterDomain = WESTERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT;

	/**
	 * The default value of the '{@link #getNumberOfForecastsInTheCluster() <em>Number Of Forecasts In The Cluster</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfForecastsInTheCluster()
	 * @generated
	 * @ordered
	 */
	protected static final byte NUMBER_OF_FORECASTS_IN_THE_CLUSTER_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getNumberOfForecastsInTheCluster() <em>Number Of Forecasts In The Cluster</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getNumberOfForecastsInTheCluster()
	 * @generated
	 * @ordered
	 */
	protected byte numberOfForecastsInTheCluster = NUMBER_OF_FORECASTS_IN_THE_CLUSTER_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaleFactorOfStandardDeviationInTheCluster() <em>Scale Factor Of Standard Deviation In The Cluster</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfStandardDeviationInTheCluster()
	 * @generated
	 * @ordered
	 */
	protected static final byte SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getScaleFactorOfStandardDeviationInTheCluster() <em>Scale Factor Of Standard Deviation In The Cluster</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfStandardDeviationInTheCluster()
	 * @generated
	 * @ordered
	 */
	protected byte scaleFactorOfStandardDeviationInTheCluster = SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaledValueOfStandardDeviationInTheCluster() <em>Scaled Value Of Standard Deviation In The Cluster</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfStandardDeviationInTheCluster()
	 * @generated
	 * @ordered
	 */
	protected static final int SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getScaledValueOfStandardDeviationInTheCluster() <em>Scaled Value Of Standard Deviation In The Cluster</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfStandardDeviationInTheCluster()
	 * @generated
	 * @ordered
	 */
	protected int scaledValueOfStandardDeviationInTheCluster = SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaleFactorOfDistanceOfTheClusterFromEnsembleMean() <em>Scale Factor Of Distance Of The Cluster From Ensemble Mean</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfDistanceOfTheClusterFromEnsembleMean()
	 * @generated
	 * @ordered
	 */
	protected static final byte SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN_EDEFAULT = 0x00;

	/**
	 * The cached value of the '{@link #getScaleFactorOfDistanceOfTheClusterFromEnsembleMean() <em>Scale Factor Of Distance Of The Cluster From Ensemble Mean</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaleFactorOfDistanceOfTheClusterFromEnsembleMean()
	 * @generated
	 * @ordered
	 */
	protected byte scaleFactorOfDistanceOfTheClusterFromEnsembleMean = SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN_EDEFAULT;

	/**
	 * The default value of the '{@link #getScaledValueOfDistanceOfTheClusterFromEnsembleMean() <em>Scaled Value Of Distance Of The Cluster From Ensemble Mean</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfDistanceOfTheClusterFromEnsembleMean()
	 * @generated
	 * @ordered
	 */
	protected static final int SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN_EDEFAULT = 0;

	/**
	 * The cached value of the '{@link #getScaledValueOfDistanceOfTheClusterFromEnsembleMean() <em>Scaled Value Of Distance Of The Cluster From Ensemble Mean</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getScaledValueOfDistanceOfTheClusterFromEnsembleMean()
	 * @generated
	 * @ordered
	 */
	protected int scaledValueOfDistanceOfTheClusterFromEnsembleMean = SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN_EDEFAULT;

	/**
	 * The default value of the '{@link #getEnsembleForecastNumbersOffset() <em>Ensemble Forecast Numbers Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getEnsembleForecastNumbersOffset()
	 * @generated
	 * @ordered
	 */
	protected static final long ENSEMBLE_FORECAST_NUMBERS_OFFSET_EDEFAULT = 0L;

	/**
	 * The cached value of the '{@link #getEnsembleForecastNumbersOffset() <em>Ensemble Forecast Numbers Offset</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #getEnsembleForecastNumbersOffset()
	 * @generated
	 * @ordered
	 */
	protected long ensembleForecastNumbersOffset = ENSEMBLE_FORECAST_NUMBERS_OFFSET_EDEFAULT;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected ProductDefinitionTemplate43Impl() {
		super();
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EClass eStaticClass() {
		return ProductsPackage.Literals.PRODUCT_DEFINITION_TEMPLATE43;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getClusterIdentifier() {
		return clusterIdentifier;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setClusterIdentifier(byte newClusterIdentifier) {
		byte oldClusterIdentifier = clusterIdentifier;
		clusterIdentifier = newClusterIdentifier;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTER_IDENTIFIER, oldClusterIdentifier, clusterIdentifier));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getNumberOfClusterHighResolution() {
		return numberOfClusterHighResolution;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfClusterHighResolution(byte newNumberOfClusterHighResolution) {
		byte oldNumberOfClusterHighResolution = numberOfClusterHighResolution;
		numberOfClusterHighResolution = newNumberOfClusterHighResolution;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_HIGH_RESOLUTION, oldNumberOfClusterHighResolution, numberOfClusterHighResolution));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getNumberOfClusterLowResolution() {
		return numberOfClusterLowResolution;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfClusterLowResolution(byte newNumberOfClusterLowResolution) {
		byte oldNumberOfClusterLowResolution = numberOfClusterLowResolution;
		numberOfClusterLowResolution = newNumberOfClusterLowResolution;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_LOW_RESOLUTION, oldNumberOfClusterLowResolution, numberOfClusterLowResolution));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getTotalNumberOfClusters() {
		return totalNumberOfClusters;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setTotalNumberOfClusters(byte newTotalNumberOfClusters) {
		byte oldTotalNumberOfClusters = totalNumberOfClusters;
		totalNumberOfClusters = newTotalNumberOfClusters;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__TOTAL_NUMBER_OF_CLUSTERS, oldTotalNumberOfClusters, totalNumberOfClusters));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getClusteringMethod() {
		return clusteringMethod;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setClusteringMethod(byte newClusteringMethod) {
		byte oldClusteringMethod = clusteringMethod;
		clusteringMethod = newClusteringMethod;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTERING_METHOD, oldClusteringMethod, clusteringMethod));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getNorthernLatitudeOfClusterDomain() {
		return northernLatitudeOfClusterDomain;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNorthernLatitudeOfClusterDomain(int newNorthernLatitudeOfClusterDomain) {
		int oldNorthernLatitudeOfClusterDomain = northernLatitudeOfClusterDomain;
		northernLatitudeOfClusterDomain = newNorthernLatitudeOfClusterDomain;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN, oldNorthernLatitudeOfClusterDomain, northernLatitudeOfClusterDomain));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getSouthernLatitudeOfClusterDomain() {
		return southernLatitudeOfClusterDomain;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setSouthernLatitudeOfClusterDomain(int newSouthernLatitudeOfClusterDomain) {
		int oldSouthernLatitudeOfClusterDomain = southernLatitudeOfClusterDomain;
		southernLatitudeOfClusterDomain = newSouthernLatitudeOfClusterDomain;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN, oldSouthernLatitudeOfClusterDomain, southernLatitudeOfClusterDomain));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getEasternLatitudeOfClusterDomain() {
		return easternLatitudeOfClusterDomain;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setEasternLatitudeOfClusterDomain(int newEasternLatitudeOfClusterDomain) {
		int oldEasternLatitudeOfClusterDomain = easternLatitudeOfClusterDomain;
		easternLatitudeOfClusterDomain = newEasternLatitudeOfClusterDomain;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__EASTERN_LATITUDE_OF_CLUSTER_DOMAIN, oldEasternLatitudeOfClusterDomain, easternLatitudeOfClusterDomain));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getWesternLatitudeOfClusterDomain() {
		return westernLatitudeOfClusterDomain;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setWesternLatitudeOfClusterDomain(int newWesternLatitudeOfClusterDomain) {
		int oldWesternLatitudeOfClusterDomain = westernLatitudeOfClusterDomain;
		westernLatitudeOfClusterDomain = newWesternLatitudeOfClusterDomain;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__WESTERN_LATITUDE_OF_CLUSTER_DOMAIN, oldWesternLatitudeOfClusterDomain, westernLatitudeOfClusterDomain));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getNumberOfForecastsInTheCluster() {
		return numberOfForecastsInTheCluster;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setNumberOfForecastsInTheCluster(byte newNumberOfForecastsInTheCluster) {
		byte oldNumberOfForecastsInTheCluster = numberOfForecastsInTheCluster;
		numberOfForecastsInTheCluster = newNumberOfForecastsInTheCluster;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_FORECASTS_IN_THE_CLUSTER, oldNumberOfForecastsInTheCluster, numberOfForecastsInTheCluster));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getScaleFactorOfStandardDeviationInTheCluster() {
		return scaleFactorOfStandardDeviationInTheCluster;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaleFactorOfStandardDeviationInTheCluster(byte newScaleFactorOfStandardDeviationInTheCluster) {
		byte oldScaleFactorOfStandardDeviationInTheCluster = scaleFactorOfStandardDeviationInTheCluster;
		scaleFactorOfStandardDeviationInTheCluster = newScaleFactorOfStandardDeviationInTheCluster;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER, oldScaleFactorOfStandardDeviationInTheCluster, scaleFactorOfStandardDeviationInTheCluster));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getScaledValueOfStandardDeviationInTheCluster() {
		return scaledValueOfStandardDeviationInTheCluster;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaledValueOfStandardDeviationInTheCluster(int newScaledValueOfStandardDeviationInTheCluster) {
		int oldScaledValueOfStandardDeviationInTheCluster = scaledValueOfStandardDeviationInTheCluster;
		scaledValueOfStandardDeviationInTheCluster = newScaledValueOfStandardDeviationInTheCluster;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER, oldScaledValueOfStandardDeviationInTheCluster, scaledValueOfStandardDeviationInTheCluster));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public byte getScaleFactorOfDistanceOfTheClusterFromEnsembleMean() {
		return scaleFactorOfDistanceOfTheClusterFromEnsembleMean;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaleFactorOfDistanceOfTheClusterFromEnsembleMean(byte newScaleFactorOfDistanceOfTheClusterFromEnsembleMean) {
		byte oldScaleFactorOfDistanceOfTheClusterFromEnsembleMean = scaleFactorOfDistanceOfTheClusterFromEnsembleMean;
		scaleFactorOfDistanceOfTheClusterFromEnsembleMean = newScaleFactorOfDistanceOfTheClusterFromEnsembleMean;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN, oldScaleFactorOfDistanceOfTheClusterFromEnsembleMean, scaleFactorOfDistanceOfTheClusterFromEnsembleMean));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getScaledValueOfDistanceOfTheClusterFromEnsembleMean() {
		return scaledValueOfDistanceOfTheClusterFromEnsembleMean;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setScaledValueOfDistanceOfTheClusterFromEnsembleMean(int newScaledValueOfDistanceOfTheClusterFromEnsembleMean) {
		int oldScaledValueOfDistanceOfTheClusterFromEnsembleMean = scaledValueOfDistanceOfTheClusterFromEnsembleMean;
		scaledValueOfDistanceOfTheClusterFromEnsembleMean = newScaledValueOfDistanceOfTheClusterFromEnsembleMean;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN, oldScaledValueOfDistanceOfTheClusterFromEnsembleMean, scaledValueOfDistanceOfTheClusterFromEnsembleMean));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public long getEnsembleForecastNumbersOffset() {
		return ensembleForecastNumbersOffset;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public void setEnsembleForecastNumbersOffset(long newEnsembleForecastNumbersOffset) {
		long oldEnsembleForecastNumbersOffset = ensembleForecastNumbersOffset;
		ensembleForecastNumbersOffset = newEnsembleForecastNumbersOffset;
		if (eNotificationRequired())
			eNotify(new ENotificationImpl(this, Notification.SET, ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__ENSEMBLE_FORECAST_NUMBERS_OFFSET, oldEnsembleForecastNumbersOffset, ensembleForecastNumbersOffset));
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public Object eGet(int featureID, boolean resolve, boolean coreType) {
		switch (featureID) {
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTER_IDENTIFIER:
				return getClusterIdentifier();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_HIGH_RESOLUTION:
				return getNumberOfClusterHighResolution();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_LOW_RESOLUTION:
				return getNumberOfClusterLowResolution();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__TOTAL_NUMBER_OF_CLUSTERS:
				return getTotalNumberOfClusters();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTERING_METHOD:
				return getClusteringMethod();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN:
				return getNorthernLatitudeOfClusterDomain();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN:
				return getSouthernLatitudeOfClusterDomain();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__EASTERN_LATITUDE_OF_CLUSTER_DOMAIN:
				return getEasternLatitudeOfClusterDomain();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__WESTERN_LATITUDE_OF_CLUSTER_DOMAIN:
				return getWesternLatitudeOfClusterDomain();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_FORECASTS_IN_THE_CLUSTER:
				return getNumberOfForecastsInTheCluster();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER:
				return getScaleFactorOfStandardDeviationInTheCluster();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER:
				return getScaledValueOfStandardDeviationInTheCluster();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN:
				return getScaleFactorOfDistanceOfTheClusterFromEnsembleMean();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN:
				return getScaledValueOfDistanceOfTheClusterFromEnsembleMean();
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__ENSEMBLE_FORECAST_NUMBERS_OFFSET:
				return getEnsembleForecastNumbersOffset();
		}
		return super.eGet(featureID, resolve, coreType);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eSet(int featureID, Object newValue) {
		switch (featureID) {
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTER_IDENTIFIER:
				setClusterIdentifier((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_HIGH_RESOLUTION:
				setNumberOfClusterHighResolution((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_LOW_RESOLUTION:
				setNumberOfClusterLowResolution((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__TOTAL_NUMBER_OF_CLUSTERS:
				setTotalNumberOfClusters((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTERING_METHOD:
				setClusteringMethod((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN:
				setNorthernLatitudeOfClusterDomain((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN:
				setSouthernLatitudeOfClusterDomain((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__EASTERN_LATITUDE_OF_CLUSTER_DOMAIN:
				setEasternLatitudeOfClusterDomain((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__WESTERN_LATITUDE_OF_CLUSTER_DOMAIN:
				setWesternLatitudeOfClusterDomain((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_FORECASTS_IN_THE_CLUSTER:
				setNumberOfForecastsInTheCluster((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER:
				setScaleFactorOfStandardDeviationInTheCluster((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER:
				setScaledValueOfStandardDeviationInTheCluster((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN:
				setScaleFactorOfDistanceOfTheClusterFromEnsembleMean((Byte)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN:
				setScaledValueOfDistanceOfTheClusterFromEnsembleMean((Integer)newValue);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__ENSEMBLE_FORECAST_NUMBERS_OFFSET:
				setEnsembleForecastNumbersOffset((Long)newValue);
				return;
		}
		super.eSet(featureID, newValue);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public void eUnset(int featureID) {
		switch (featureID) {
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTER_IDENTIFIER:
				setClusterIdentifier(CLUSTER_IDENTIFIER_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_HIGH_RESOLUTION:
				setNumberOfClusterHighResolution(NUMBER_OF_CLUSTER_HIGH_RESOLUTION_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_LOW_RESOLUTION:
				setNumberOfClusterLowResolution(NUMBER_OF_CLUSTER_LOW_RESOLUTION_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__TOTAL_NUMBER_OF_CLUSTERS:
				setTotalNumberOfClusters(TOTAL_NUMBER_OF_CLUSTERS_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTERING_METHOD:
				setClusteringMethod(CLUSTERING_METHOD_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN:
				setNorthernLatitudeOfClusterDomain(NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN:
				setSouthernLatitudeOfClusterDomain(SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__EASTERN_LATITUDE_OF_CLUSTER_DOMAIN:
				setEasternLatitudeOfClusterDomain(EASTERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__WESTERN_LATITUDE_OF_CLUSTER_DOMAIN:
				setWesternLatitudeOfClusterDomain(WESTERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_FORECASTS_IN_THE_CLUSTER:
				setNumberOfForecastsInTheCluster(NUMBER_OF_FORECASTS_IN_THE_CLUSTER_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER:
				setScaleFactorOfStandardDeviationInTheCluster(SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER:
				setScaledValueOfStandardDeviationInTheCluster(SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN:
				setScaleFactorOfDistanceOfTheClusterFromEnsembleMean(SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN:
				setScaledValueOfDistanceOfTheClusterFromEnsembleMean(SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN_EDEFAULT);
				return;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__ENSEMBLE_FORECAST_NUMBERS_OFFSET:
				setEnsembleForecastNumbersOffset(ENSEMBLE_FORECAST_NUMBERS_OFFSET_EDEFAULT);
				return;
		}
		super.eUnset(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public boolean eIsSet(int featureID) {
		switch (featureID) {
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTER_IDENTIFIER:
				return clusterIdentifier != CLUSTER_IDENTIFIER_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_HIGH_RESOLUTION:
				return numberOfClusterHighResolution != NUMBER_OF_CLUSTER_HIGH_RESOLUTION_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_CLUSTER_LOW_RESOLUTION:
				return numberOfClusterLowResolution != NUMBER_OF_CLUSTER_LOW_RESOLUTION_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__TOTAL_NUMBER_OF_CLUSTERS:
				return totalNumberOfClusters != TOTAL_NUMBER_OF_CLUSTERS_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__CLUSTERING_METHOD:
				return clusteringMethod != CLUSTERING_METHOD_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN:
				return northernLatitudeOfClusterDomain != NORTHERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN:
				return southernLatitudeOfClusterDomain != SOUTHERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__EASTERN_LATITUDE_OF_CLUSTER_DOMAIN:
				return easternLatitudeOfClusterDomain != EASTERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__WESTERN_LATITUDE_OF_CLUSTER_DOMAIN:
				return westernLatitudeOfClusterDomain != WESTERN_LATITUDE_OF_CLUSTER_DOMAIN_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__NUMBER_OF_FORECASTS_IN_THE_CLUSTER:
				return numberOfForecastsInTheCluster != NUMBER_OF_FORECASTS_IN_THE_CLUSTER_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER:
				return scaleFactorOfStandardDeviationInTheCluster != SCALE_FACTOR_OF_STANDARD_DEVIATION_IN_THE_CLUSTER_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER:
				return scaledValueOfStandardDeviationInTheCluster != SCALED_VALUE_OF_STANDARD_DEVIATION_IN_THE_CLUSTER_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN:
				return scaleFactorOfDistanceOfTheClusterFromEnsembleMean != SCALE_FACTOR_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN:
				return scaledValueOfDistanceOfTheClusterFromEnsembleMean != SCALED_VALUE_OF_DISTANCE_OF_THE_CLUSTER_FROM_ENSEMBLE_MEAN_EDEFAULT;
			case ProductsPackage.PRODUCT_DEFINITION_TEMPLATE43__ENSEMBLE_FORECAST_NUMBERS_OFFSET:
				return ensembleForecastNumbersOffset != ENSEMBLE_FORECAST_NUMBERS_OFFSET_EDEFAULT;
		}
		return super.eIsSet(featureID);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		if (eIsProxy()) return super.toString();

		StringBuffer result = new StringBuffer(super.toString());
		result.append(" (clusterIdentifier: "); //$NON-NLS-1$
		result.append(clusterIdentifier);
		result.append(", numberOfClusterHighResolution: "); //$NON-NLS-1$
		result.append(numberOfClusterHighResolution);
		result.append(", numberOfClusterLowResolution: "); //$NON-NLS-1$
		result.append(numberOfClusterLowResolution);
		result.append(", totalNumberOfClusters: "); //$NON-NLS-1$
		result.append(totalNumberOfClusters);
		result.append(", clusteringMethod: "); //$NON-NLS-1$
		result.append(clusteringMethod);
		result.append(", northernLatitudeOfClusterDomain: "); //$NON-NLS-1$
		result.append(northernLatitudeOfClusterDomain);
		result.append(", southernLatitudeOfClusterDomain: "); //$NON-NLS-1$
		result.append(southernLatitudeOfClusterDomain);
		result.append(", easternLatitudeOfClusterDomain: "); //$NON-NLS-1$
		result.append(easternLatitudeOfClusterDomain);
		result.append(", westernLatitudeOfClusterDomain: "); //$NON-NLS-1$
		result.append(westernLatitudeOfClusterDomain);
		result.append(", numberOfForecastsInTheCluster: "); //$NON-NLS-1$
		result.append(numberOfForecastsInTheCluster);
		result.append(", scaleFactorOfStandardDeviationInTheCluster: "); //$NON-NLS-1$
		result.append(scaleFactorOfStandardDeviationInTheCluster);
		result.append(", scaledValueOfStandardDeviationInTheCluster: "); //$NON-NLS-1$
		result.append(scaledValueOfStandardDeviationInTheCluster);
		result.append(", scaleFactorOfDistanceOfTheClusterFromEnsembleMean: "); //$NON-NLS-1$
		result.append(scaleFactorOfDistanceOfTheClusterFromEnsembleMean);
		result.append(", scaledValueOfDistanceOfTheClusterFromEnsembleMean: "); //$NON-NLS-1$
		result.append(scaledValueOfDistanceOfTheClusterFromEnsembleMean);
		result.append(", ensembleForecastNumbersOffset: "); //$NON-NLS-1$
		result.append(ensembleForecastNumbersOffset);
		result.append(')');
		return result.toString();
	}

	/* (non-Javadoc)
	 * @see org.mro.grib.model.files.secondEdition.products.impl.ProductDefinitionTemplate42Impl#initialise(java.nio.ByteBuffer)
	 */
	@Override
	public void initialise(ByteBuffer buffer) {
		super.initialise(buffer);
		clusterIdentifier = buffer.get();
		numberOfClusterHighResolution = buffer.get();
		numberOfClusterLowResolution = buffer.get();
		totalNumberOfClusters = buffer.get();
		clusteringMethod = buffer.get();
		northernLatitudeOfClusterDomain = buffer.getInt();
		southernLatitudeOfClusterDomain = buffer.getInt();
		easternLatitudeOfClusterDomain = buffer.getInt();
		westernLatitudeOfClusterDomain = buffer.getInt();
		numberOfForecastsInTheCluster = buffer.get();
		scaleFactorOfStandardDeviationInTheCluster = buffer.get();
		scaledValueOfStandardDeviationInTheCluster = buffer.getInt();
		scaleFactorOfDistanceOfTheClusterFromEnsembleMean = buffer.get();
		scaledValueOfDistanceOfTheClusterFromEnsembleMean = buffer.getInt();
		ensembleForecastNumbersOffset = buffer.position();
	}
	
} //ProductDefinitionTemplate43Impl
